Database-project
ΤΕΧΝΙΚΗ ΑΝΑΦΟΡΑ
2
ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ
ΕΞΩΦΥΛΛΟ ........................................................................................... 1
ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ .................................................................... 2
ΕΙΣΑΓΩΓΗ .............................................................................................. 3
1. ΚΕΦΑΛΑΙΟ 1
1.1 Δημιουργία πινάκων ................................................................. 4
1.2 Ορισμός πεδίων ........................................................................ 4
1.3 Εισαγωγή δεδομένων ............................................................... 5
2. ΚΕΦΑΛΑΙΟ 2
2.1 Παρουσίαση δεδομένων ........................................................... 6
2.2 Αλλαγή δεδομένων ................................................................... 7
2.3 Διαγραφή δεδομένων ............................................................... 9
3. ΚΕΦΑΛΑΙΟ 3
3.1 Περισσότερες επιλογές ............................................................ 15
3.1.1 Ταξινόμηση δεδομένων..................................... 15
3.1.2 Προσθήκη δεδομένων ....................................... 17
3.1.3 Αναζήτηση δεδομένων ...................................... 18
3.1.4 Εύρεση μεγίστου ............................................... 19
3.1.5 Εύρεση ελαχίστου ............................................. 19
4. ΚΕΦΑΛΑΙΟ 4
4.1 Αποθήκευση Βάσης ............................................................... 20
4.2 Ανάκτηση Βάσης ..................................................................... 20
5. ΚΕΦΑΛΑΙΟ 5
5.1 Πολλαπλοί Πίνακες ................................................................ 21
5.1.1 Είδη συσχετίσεων .............................................. 21
5.1.2 Διαγραφή συσχετίσεων βάσης ........................... 25
5.1.3 Πλήθος και λίστα συσχετίσεων βάσης ................ 26
5.1.4 Περιορισμοί συσχετισμένων πινάκων .................. 5
3
Εισαγωγή
Το παρόν εγχειρίδιο παρέχει αναλυτικές οδηγίες χρήσης για τη λειτουργία του
προγράμματος DatabaseProject το οποίο πραγματοποιήθηκε στα πλαίσια του μαθήματος
Προγραμματισμός ΙΙ κατά το τρίτο εξάμηνο φοίτησης μας στο τμήμα Διοικητικής Επιστήμης
και Τεχνολογίας του Οικονομικού Πανεπιστημίου Αθηνών.
4
ΚΕΦΑΛΑΙΟ 1
ο
1.1 Δημιουργία πινάκων
Για τη δημιουργία ενός νέου πίνακα ο χρήστης επιλέγει από το κύριο μενού
(Manage your Tables) την επιλογή Create New Table.
1.2 Ορισμός πεδίων
Ο χρήστης μετά τη δημιουργία του πίνακα καλείται να ορίσει τα πεδία που θα
περιέχονται σε αυτόν. Τα πεδία των εγγραφών ενός πίνακα αναφέρονται σε μία
οντότητα. Στην περίπτωση, που ο χρήστης, επιθυμεί να εισάγει πεδία που
αναφέρονται σε διαφορετική οντότητα, πρέπει να δημιουργήσει ένα πίνακα για κάθε
ξεχωριστή οντότητα. Αφού εισάγει το όνομα του πεδίου, καλείται να επιλέξει τον
τύπο των στοιχείων που θα εισαχθούν από αυτόν στη συνέχεια. Οι τύποι, που
παρέχονται από το πρόγραμμα είναι ακέραιος (Integer), δεκαδικός (Double), κείμενο
(Text) και τύπος ορισμένος από τον χρήστη (Enumerated Type)*. Ο ορισμός νέων
πεδίων τερματίζεται όταν ο χρήστης εισάγει ως όνομα πεδίου την εντολή EXIT.
Αφού οριστούν τα πεδία με τον τρόπο που παρατέθηκε παραπάνω ο χρήστης
καλείται να αποφασίσει αν ο πίνακας διαθέτει πρωτεύον κλειδί, δηλαδή μια στήλη
της οποίας το στοιχείο, που αντιστοιχεί σε μια εγγραφή, είναι μοναδικό. Η εφαρμογή
δεν επιτρέπει στο χρήστη, να ορίσει πεδίο με τύπο Enumerated Type, ως πρωτεύον
κλειδί.
επιλογή Enumerated Type, δίνει στο χρήστη τη δυνατότητα να ορίσει πως ένα
πεδίο θα λαμβάνει τιμές από ένα διακριτό σύνολο τιμών, τις οποίες έχει καθορίσει ο
ίδιος, κατα την επιλογή αυτού του τύπου δεδομένων. Η εισαγωγή των
προεπιλεγμένων τιμών τερματίζεται, όταν ο χρήστης εισάγει την εντολή ΕΧΙΤ.
Ένα παράδειγμα για τον τρόπο λειτουργίας του Enumerated Type παρατίθεται
παρακάτω:
Εικόνα 1.1
Στη συνέχεια ο χρήστης μπορεί
να εισάγει στο πεδίο GENDER
του πίνακα μία από τις τιμές που
όρισε μετά την εντολή “Please
type the values that you want for
GENDER”
5
1.3 Εισαγωγή δεδομένων
Αφού ο χρήστης ορίσει τα πεδία, στη συνέχεια καλείται να εισάγει τις εγγραφές
του. Ο πίνακας μπορεί να γεμίσει είτε ανά γραμμή είτε ανά στήλη. Σε κάθε
περίπτωση, όλες οι στήλες πρέπει να έχουν το ίδιο πλήθος στοιχείων. Σε περίπτωση
που ο χρήστης έχει ορίσει μια στήλη ως πρωτεύον κλειδί, το στοιχείο που αντιστοιχεί
σε κάθε εγγραφή πρέπει να είναι μοναδικό. Μετά το αρχικό γέμισμα του πίνακα ο
χρήστης έχει τη δυνατότητα να προσθέσει επιπλέον εγγραφές (γραμμές) κι επιπλέον
πεδία (στήλες). Ωστόσο, δεν του δίνεται η δυνατότητα να ορίσει εκ των υστέρων
πρωτεύον κλειδί, εκτός από την περίπτωση που επιλέξει να συσχετίσει έναν πίνακα
χωρίς πρωτεύον κλειδί.
Σχετικά με την εισαγωγή δεδομένων σε μετέπειτα φάση, υπάρχουν ορισμένοι
περιορισμοί σχετικά με τους συσχετισμένους πίνακες οι οποίοι βρίσκονται στην
υποενότητα «Περιορισμοί Συσχετισμένων Πινάκων».
Με την δημιουργία πινάκων και εισαγωγή στοιχείων σε αυτούς, ο χρήστης έχει
την δυνατότητα πλέον να τους επεξεργαστεί, επιλέγοντας από το μενού το “Manage
Tables”(εικόνα 1.2). Οδηγείται σε ένα νέο μενού, το οποίο παρέχει τις εξής
λειτουργίες:
παρουσίαση δεδομένων(Present Data), αλλαγή δεδομένων(Change Data), διαγραφή
δεδομένων(Delete Data) και επιπλέον επιλογές(More Options).
Εικόνα 1.2
6
ΚΕΦΑΛΙΟ 2
ο
2.1 Παρουσίαση δεδομένων
Ο χρήστης επιλέγοντας από το νέο μενού, την επιλογή «Present Data», οδηγείται
σε ένα νέο μενού που αφορά συγκεκριμένα την παρουσίαση στοιχείων: εκτύπωση
όλων, εκτύπωση εύρους γραμμών, εκτύπωση συγκεκριμένων πεδίων.(εικόνα 1.3)
Εικόνα 1.3
Στα ακόλουθα παραδείγματα είναι εμφανές ποιες λειτουργίες επιτελεί κάθε επιλογή:
Εικόνα 1.4 Εικόνα 1.5
7
Εικόνα 1.6
2.2 Αλλαγή δεδομένων
Ο χρήστης πληκτρολογώντας από το νέο μενού, την επιλογή «Change Data»,
οδηγείται σε ένα νέο μενού(εικόνα 1.7) που αφορά συγκεκριμένα την αλλαγή
στοιχείων και πεδίων: αλλαγή ονόματος ενός πεδίου, αλλαγή συγκεκριμένου
στοιχείου σε ένα πεδίο, αλλαγή στοιχείων ανά γραμμή.
Εικόνα 1.7
Προσοχή:
Σχεδόν σε κάθε επιλογή απαιτείται το όνομα του πεδίου όπου θα
πραγματοποιηθεί η αντίστοιχη επεξεργασία. Η πληκτρολόγηση του ονόματος του
πεδίου πρέπει να είναι όπως ακριβώς έχει αποθηκευτεί στην βάση ( πχ NAMES
αντί NAME). Διαφορετικά, δεν προχωράει η επιθυμητή επεξεργασία.(εικόνα 1.8)
8
Κατά την αλλαγή ονόματος ενός πεδίου, δεν επιτρέπεται το νέο όνομα να υπάρχει
ήδη στην βάση.(1.10)
Κατά την αλλαγή ενός στοιχείου σε ένα πεδίο, θα πρέπει η νέα τιμή να είναι ίδιου
τύπου με τον τύπο που έχει ορίσει ο χρήστης κατά την δημιουργία του.
Η αλλαγή σε στοιχείο που ανήκει σε πεδίο με Πρωτεύοντα Κλειδιά, θα πρέπει να
γίνεται με μεγάλη προσοχή. Η νέα τιμή του στοιχείου θα πρέπει να είναι
μοναδική. Διαφορετικά, δεν προχωράει η επιθυμητή επεξεργασία.(εικόνα 1.9)
Η αλλαγή σε στοιχείο που ανήκει σε πεδίο με Ξένα Κλειδιά δεν επιτρέπεται.
Η αλλαγή όλων των στοιχείων με την ίδια τιμή δεν επιτρέπεται σε πεδία που
περιέχουν Πρωτεύοντα Κλειδιά ή Ξένα Κλειδιά.
Οποιαδήποτε διαδικασία εσωτερικής αλλαγής ενός πεδίου δεν πραγματοποιείται
αν το πεδίο δεν περιέχει στοιχεία.
Απαγορεύεται να πραγματοποιηθεί οποιαδήποτε αλλαγή στο πεδίο Record.
Ακολουθούν σχετικά παραδείγματα:
Εικόνα 1.8
Εικόνα 1.9
9
Εικόνα 1.10
2.3 Διαγραφή δεδομένων
Στον χρήστη δίνεται επιπλέον η δυνατότητα της διαγραφής δεδομένων από τον πίνακα.
Η λειτουργία αυτή μπορεί να πραγματοποιηθεί διαλέγοντας από το κύριο
μενού(Manage your Tables) την επιλογή Delete Data.
ΠΑΡΑΤΗΡΗΣΗ: Διαγραφή δεδομένων μπορεί να γίνει μόνο αν ο πίνακας δεν είναι
άδειος.
Εφόσον λοιπόν ο πίνακας περιέχει δεδομένα, ο χρήστης μπορεί να επιλέξει να
διαγράψει είτε γραμμές, είτε στήλες, είτε στοιχεία, αλλά ακόμη και ολόκληρο τον
πίνακα. (εικόνα 1.11)
Εικόνα 1.11
10
Διαγραφή γραμμών
Μέσω αυτής της επιλογής(Delete Rows) εμφανίζεται ένα δεύτερο μενού. Το μενού
αυτό παρέχει δύο δυνατότητες, την διαγραφή συγκεκριμένων γραμμών και την
διαγραφή ενός διαστήματος γραμμών.(εικόνα 1.12)
Εικόνα 1.12
Εισάγοντας τον αριθμό 1, ο χρήστης επιλέγει την διαγραφή συγκεκριμένων
γραμμών(Delete Specific Records) μέσω της οποίας μπορεί να διαγράψει
οποιαδήποτε γραμμή. Η διαγραφή γραμμής πραγματοποιείται με την εισαγωγή από
τον χρήστη του αριθμού της γραμμής που επιθυμεί να αφαιρέσει. Αμέσως, η γραμμή
διαγράφεται και εμφανίζεται στον χρήστη ο νέος πίνακας που δημιουργήθηκε.
Έπειτα, ο χρήστης αποφασίζει αν θέλει να συνεχίσει την διαδικασία διαγράφοντας κι
άλλη γραμμή ή όχι.(εικόνα 1.13)
Εικόνα 1.13
11
Όμως αν ο χρήστης επιθυμεί την διαγραφή πολλών γραμμών οι οποίες βρίσκονται
στη σειρά(η μία κάτω από την άλλη), η δεύτερη επιλογή(Delete specific range of
records) τον διευκολύνει αρκετά. Εισάγοντας τον αριθμό 2, ο χρήστης καλείται να
εισάγει την πρώτη και την τελευταία γραμμή του εύρους των γραμμών που θέλει να
διαγράψει. Η πρώτη γραμμή που θα εισάγει ο χρήστης πρέπει να είναι μικρότερη της
τελευταίας, διαφορετικά ξαναζητείται η εισαγωγή τους.(εικόνα 1.14)
Εικόνα 1.14
Υπάρχει σαφώς η δυνατότητα χρήσης και των δύο επιλογών με την προϋπόθεση ότι
υπάρχουν γραμμές.
Διαγραφή στηλών
Μέσω αυτής της επιλογής (Delete Columns) δίνεται η δυνατότητα διαγραφής
πεδίων. Ο χρήστης καλείται να εισάγει το όνομα του πεδίου που επιθυμεί να
διαγράψει. Προκειμένου να είναι επιτυχής η διαγραφή το όνομα δε θα πρέπει να
αντιστοιχεί σε πεδίο το οποίο περιέχει πρωτεύοντα ή ξένα κλειδιά, διαφορετικά ο
χρήστης πρέπει να εισάγει άλλο όνομα. Όταν η εισαγωγή γίνεται δεκτή το πεδίο
διαγράφεται, και ανάλογα με την επιθυμία του χρήστη η διαδικασία μπορεί να
επαναληφθεί. (εικόνα 1.15)
12
Εικόνα 1.15
Στην περίπτωση που ο πίνακας δεν περιέχει πρωτεύοντα ή ξένα κλειδιά, ο χρήστης
έχει την δυνατότητα να αδειάσει τον πίνακα.
Διαγραφή στοιχείων
Με την επιλογή διαγραφή στοιχείων(Delete Elements) δίνεται η δυνατότητα στον
χρήστη να αφαιρέσει μεμονωμένα στοιχεία. Ο χρήστης καλείται να εισάγει το όνομα
του πεδίου και την γραμμή στην οποία βρίσκεται το στοιχείο. Άμα το πεδίο περιέχει
πρωτεύοντα κλειδιά το στοιχείο δε μπορεί να αφαιρεθεί μόνο του, αλλά με όλα τα
υπόλοιπα στοιχεία που βρίσκονται στην ίδια γραμμή με αυτό, καθώς υπάρχει ο
κίνδυνος αλλοίωσης συσχετίσεων μεταξύ πινάκων. Σε αυτήν την περίπτωση ο
χρήστης μπορεί να επιλέξει αν θα συνεχιστεί η διαγραφή. (εικόνα 1.16)
Άμα το πεδίο δεν περιέχει πρωτεύοντα κλειδιά τότε το στοιχείο διαγράφεται
κανονικά. (εικόνα 1.17) Έπειτα ο χρήστης έχει την δυνατότητα να επανεισάγει
κάποιο άλλο στοιχείο στη θέση του.
13
Εικόνα 1.16
Εικόνα 1.17
Διαγραφή πίνακα
Μέσω της επιλογής διαγραφή πίνακα(Delete All) ο χρήστης έχει την δυνατότητα
να αφαιρέσει όλα τα δεδομένα άμεσα. Μετά από αυτήν τη διαγραφή ο χρήστης δε
14
μπορεί να διαχειριστεί τον συγκεκριμένο πίνακα, παρά μόνο να του εισάγει
δεδομένα πράγμα το οποίο τον οδηγεί τελικώς στην ανάκτηση όλων των λειτουργιών
ξανά. (εικόνα 1.18)
Εικόνα 1.18
15
ΚΕΦΑΛΑΙΟ 3
ο
3.1 Περισσότερες επιλογές
Ο χρήστης πληκτρολογώντας από το νέο μενού, την επιλογή «More Options», ο
χρήστης οδηγείται σε ένα νέο μενού που του παρέχει επιπλέον λειτουργίες.
Εικόνα 1.19
3.1.1 Ταξινόμηση δεδομένων
Εάν ο πίνακας που έχει δημιουργηθεί περιέχει περισσότερες από μία
γραμμές, ο χρήστης έχει τη δυνατότητα ταξινόμησης του. Ο χρήστης
διαλέγοντας από το κύριο μενού(Manage your Tables), την επιλογή More
Options, οδηγείται σε ένα νέο μενού στο οποίο εισάγει τον αριθμό 1(Sort Data)
προκειμένου να μεταφερθεί στο μενού της ταξινόμησης.(εικόνα 1.20)
Εικόνα 1.20
16
Ο χρήστης επιλέγοντας την ταξινόμηση(Sort), καλείται να εισάγει την στήλη
με βάση την οποία επιθυμεί να γίνει η ταξινόμηση. Έπειτα δίνεται η
δυνατότητα επιλογής του είδους της ταξινόμησης(αύξουσα ή
φθίνουσα).(Εικόνα 1.21)
Sort column “NAME” in ascending order
Sort column “AM” in descending order
Εικόνα 1.21
17
3.1.2 Προσθήκη δεδομένων
Ο χρήστης πληκτρολογώντας από το νέο μενού την επιλογή «Add Data»,
οδηγείται σε ένα νέο μενού που αφορά συγκεκριμένα την προσθήκη
στοιχείων: προσθήκη γραμμών, προσθήκη στηλών.(εικόνα 1.22)
Εικόνα 1.22
Παράδειγμα προσθήκης νέας γραμμής και στήλης:
Add Data -> Add Columns
Προσθήκη Στήλης
Εικόνα 1.23
18
Add Data -> Add records
Προσθήκη γραμμής
Εικόνα 1.24
3.1.3 Αναζήτηση Δεδομένων
Ο χρήστης πληκτρολογώντας από το νέο μενού, την επιλογή «Search Data»,
ο χρήστης έχει την δυνατότητα να γνωρίζει αν ένα στοιχείο υπάρχει σε ένα
συγκεκριμένο πεδίο. Και αν υπάρχει, εμφανίζεται στην οθόνη σε ποιες θέσεις
και records βρίσκεται. (εικόνα 1.25)
Προσοχή: στην σωστή πληκτρολόγηση ονόματος πεδίου και στον σωστό τύπο
του ζητούμενου στοιχείου που αντιστοιχεί στο πεδίο, όπως έχει
προαναφερθεί!
Εικόνα 1.25
19
3.1.4 Εύρεση μεγίστου
Ο χρήστης πληκτρολογώντας από το νέο μενού, την επιλογή «Find
Maximum Data», έχει την δυνατότητα να γνωρίζει αν ένα στοιχείο υπάρχει έχει
την δυνατότητα να γνωρίσει την μεγαλύτερη τιμή ενός στοιχείου σε ένα
συγκεκριμένο πεδίο. Εμφανίζεται στην οθόνη σε ποιες θέσεις και records
υπάρχει.(εικόνα 1.26)
3.1.5 Εύρεση Ελαχίστου
Ο χρήστης πληκτρολογώντας από το νέο μενού, την επιλογή «Find Minimum
Data», έχει την δυνατότητα να γνωρίσει την μικρότερη τιμή ενός στοιχείου σε
ένα συγκεκριμένο πεδίου. Εμφανίζεται στην οθόνη και σε ποιες θέσεις και
records υπάρχει.(εικόνα 1.26)
Εικόνα 1.26
20
ΚΕΦΑΛΑΙΟ 4
ο
4.1 Αποθήκευση Βάσης
Μόλις ο χρήστης επιλέξει την επιλογή Exit του κύριου μενού (Manage your
Tables) του τίθεται το ερώτημα αν θέλει να αποθηκεύσει τη βάση του. Σε περίπτωση
που το επιθυμεί πρέπει να πληκτρολογήσει Y (Yes)
4.2 Ανάκτηση βάσης
Κατά την έναρξη του Προγράμματος ο χρήστης έχει τη δυνατότητα να επιλέξει
εάν θέλει να δημιουργήσει μια νέα βάση ή να ανακτήσει μία ήδη υπάρχουσα.
Αν ο χρήστης επιλέξει να ανακτήσει μια ήδη υπάρχουσα βάση:
Σε περίπτωση που δεν υπάρχει αποθηκευμένη βάση στον υπολογιστή
αυτόματα δημιουργείται μια καινούργια
Σε περίπτωση που υπάρχουν αποθηκευμένες βάσεις μια λίστα με τα ονόματα
αυτών εμφανίζεται και ο χρήστης επιλέγει ποια από αυτές θέλει να ανακτήσει.
Αν ο χρήστης επιλέξει να δημιουργήσει μια νέα βάση:
Του ζητείται να εισάγει το όνομα αυτής και στη συνέχεια μεταβαίνει στο κύριο
μενού (Manage your Tables)
ΣΗΜΑΝΤΙΚΗ ΠΑΡΑΤΗΡΗΣΗ
Σε περίπτωση που ο χρήστης χρησιμοποιήσει για μια καινούργια βάση το ίδιο όνομα με
μια ήδη αποθηκευμένη και στη συνέχεια επιλέξει την αποθήκευση της, η υπάρχουσα
βάση θα αντικατασταθεί. Όλοι οι αποθηκευμένοι πίνακες και συσχετίσεις θα χαθούν και
θα αντικατασταθούν από τα στοιχεία της νέας βάσης. Το σημείο αυτό απαιτεί ιδιαίτερη
προσοχή καθώς τα ονόματα που αποδίδονται στις βάσεις και τους πίνακες είναι τελικά,
δηλαδή δεν μπορούν να αλλαχθούν κατά τη διάρκεια του προγράμματος.
21
ΚΕΦΑΛΑΙΟ 5
ο
5.1 Πολλαπλοί Πίνακες
Δεν υπάρχει περιορισμός στο πλήθος των πινάκων που μπορεί να δημιουργήσει ο
χρήστης. Εάν τουλάχιστον δύο πίνακες υπάρχουν στη βάση, ο χρήστης έχει τη
δυνατότητα να δημιουργήσει συσχέτιση μεταξύ τους διαλέγοντας από το κύριο
μενού (Manage your Tables) την επιλογή Make Correlationships.
Μια συσχέτιση μπορεί να εφαρμοστεί μόνο μεταξύ δύο πινάκων της βάσης που
διαθέτουν πρωτεύοντα κλειδιά τα οποία έχουν οριστεί κατά τη δημιουργία του
πίνακα (βλ. Ενότητα «Ορισμός Πεδίων»). Δύο οντότητες (πίνακες) μπορούν να
συσχετιστούν μόνο μία φορά.
Μετά την επιλογή των πινάκων που θα συμμετάσχουν στη συσχέτιση ο χρήστης
πρέπει να ορίσει το είδος της συσχέτισης μεταξύ τους.
5.1.1 Είδη συσχετίσεων
Τα είδη των συσχετίσεων που είναι διαθέσιμα είναι τα εξής:
Συσχέτιση One-To-One
Μέσω αυτής της συσχέτισης ο χρήστης μπορεί να συνδέσει μια
ακριβώς εγγραφή (γραμμή) του ενός πίνακα με μία ακριβώς εγγραφή
(γραμμή) του άλλου πίνακα. Οι επιμέρους συσχετίσεις μεταξύ των
εγγραφών του πίνακα γίνονται με την εισαγωγή από τον χρήστη του
πρωτεύοντος κλειδιού μιας εγγραφής που αντιστοιχεί στην εγγραφή του
πίνακα στον οποίο θα υπάρχει η αναφορά. Το πρωτεύον κλειδί που
χρησιμοποιήθηκε πλέον λειτουργεί ως ξένο κλειδί ώστε να δηλωθεί η
αναφορά. Ο χρήστης αποφασίζει σε ποιον πίνακα από τους δύο θα
προστεθεί το ξένο κλειδί. Εγγραφές αυτού του πίνακα δεν μπορούν να
παραμείνουν ασυσχέτιστες ενώ το μέγεθός του πρέπει να είναι μικρότερο
ή ίσο του μεγέθους του συσχετισμένου πίνακα. Υπάρχει η δυνατότητα
γραμμές του πίνακα που δεν διαθέτει ξένο κλειδί να παραμείνουν
ασυσχέτιστες.
Παράδειγμα:
ΠΙΝΑΚΑΣ Α’
Όνομα
Αριθμός Μητρώου (Πρωτεύον Κλειδί)
Παπαδόπουλος
27812
Γεώργιος
32581
22
ΠΙΝΑΚΑΣ Β’
Τμήμα
Κωδικός Τμήματος (Πρωτεύον Κλειδί)
Μάρκετινγκ
Α21
Πωλήσεις
Β12
Αν ο χρήστης επιλέξει να συσχετίσει τους δύο πίνακες με μία συσχέτιση
One-To-One θα κληθεί να αποφασίσει σε ποιον από τους δύο πίνακες θα
τοποθετηθεί το ξένο κλειδί (foreign key). Έστω ότι επιλέγει ότι το πρωτεύον
κλειδί θα τοποθετηθεί στον πίνακα Β όπως φαίνεται παρακάτω:
Τότε αφού ορίσει τις επιμέρους συσχετίσεις ως εξής:
23
Ο πίνακας Β (TABLEB) θα διαμορφωθεί ως εξής:
Ο χρήστης αφού δημιουργήσει τη συσχέτιση:
Έχει τη δυνατότητα να δει πληροφορίες σχετικά με το είδος της συσχέτισης
(Manage your Tables -> Ask Questions -> View Properties -> (User chooses
correlation) -> Show Info)
Έχει τη δυνατότητα να κάνει αναζήτηση συσχετισμένων εγγραφών μεταξύ
δύο πινάκων μέσω του πρωτεύοντος κλειδιού του ενός πίνακα
(Manage your Tables -> Ask Questions -> View Properties -> (User chooses
correlation) -> Search for related records).
Ένα παράδειγμα παρατίθεται παρακάτω:
Συσχέτιση One-To-Many
Μέσω αυτής της συσχέτισης ο χρήστης μπορεί να συνδέσει μια
ακριβώς εγγραφή (γραμμή) του ενός πίνακα με πολλαπλές εγγραφές
(γραμμές) του άλλου πίνακα. Οι επιμέρους συσχετίσεις μεταξύ των
εγγραφών του πίνακα γίνονται με την εισαγωγή από τον χρήστη του
πρωτεύοντος κλειδιού μιας εγγραφής που αντιστοιχεί στην εγγραφή του
24
πίνακα στον οποίον θα υπάρχει η αναφορά. Το πρωτεύον κλειδί που
χρησιμοποιήθηκε πλέον λειτουργεί ως ξένο κλειδί ώστε να δηλωθεί η
αναφορά. Ο χρήστης καθορίζει ποιου πίνακα οι εγγραφές μπορούν να
αντιστοιχούν σε πολλαπλές εγγραφές του άλλου πίνακα. Έτσι αποφασίζει
σε ποιον πίνακα από τους δύο θα προστεθεί το ξένο κλειδί. Γραμμές που
διαθέτουν ξένο κλειδί δεν μπορούν να παραμείνουν ασυσχέτιστες.
Ωστόσο υπάρχει η δυνατότητα γραμμές του πίνακα που διαθέτει το
πρωτεύον κλειδί που χρησιμοποιείται ως αναφορά να μη συσχετιστούν .
Στο παρακάτω παράδειγμα φαίνεται η συσχέτιση μεταξύ των πινάκων
TABLEB (του προηγούμενου παραδείγματος) και του TABLEC που
παρατίθεται παρακάτω:
Αφού έχει δημιουργηθεί η συσχέτιση μεταξύ των πινάκων οι επιμέρους
συσχετίσεις ορίζονται ως εξής:
25
Μετά από αυτή τη διαδικασία ο πίνακας C (TABLEC) θα έχει διαμορφωθεί ως
εξής:
Οι δυνατότητες παρουσίασης πληροφοριών συγκεκριμένης συσχέτισης καθώς
επίσης και η αναζήτηση συσχετισμένων εγγραφών είναι επίσης διαθέσιμες (βλ.
συσχέτιση One-To-One)
Συσχέτιση Many-To-Many
Μέσω αυτής της συσχέτισης ο χρήστης μπορεί να συνδέσει πολλαπλές
εγγραφές (γραμμές) του ενός πίνακα με πολλαπλές εγγραφές (γραμμές)
του άλλου πίνακα. Οι επιμέρους συσχετίσεις μεταξύ των εγγραφών του
πίνακα γίνονται με την εισαγωγή από τον χρήστη των πρωτεύοντων
κλειδιών των εγγραφών που αντιστοιχούν στην εγγραφή του πίνακα στον
οποίον θα υπάρχει η αναφορά. Τα πρωτεύοντα κλειδιά που
χρησιμοποιήθηκαν πλέον λειτουργούν ως ξένα κλειδιά ώστε να δηλωθεί η
αναφορά. Πλέον και οι δύο πίνακες διαθέτουν ξένα κλειδιά, οπότε ο
χρήστης δεν χρειάζεται να αποφασίσει σε ποιον πίνακα από τους δύο θα
προστεθεί ξένο κλειδί. Υπάρχει η δυνατότητα γραμμές και των δύο
πινάκων να παραμείνουν ασυσχέτιστες.
ΣΗΜΑΝΤΙΚΗ ΠΑΡΑΤΗΡΗΣΗ:
Όταν δημιουργείται μία συσχέτιση Many-To-Many στην παρουσίαση των
πινάκων δεν υπάρχει στήλη με τα ξένα κλειδιά που έχει ορίσει ο χρήστης.
Μπορεί να εντοπίσει τι συσχετίσεις που δημιούργησε μέσω της αναζήτησης σε
συσχετισμένους πίνακες όπως ακριβώς και στα άλλα δύο είδη συσχετίσεων.
5.1.2 Διαγραφή συσχετίσεων βάσης
Ο χρήστης μπορεί να διαγράψει οποιαδήποτε συσχέτιση ως εξής:
Ξεκινώντας από το μενού Manage your Tables πρέπει να επιλέξει διαδοχικά:
Ask Questions -> Delete Correlations -> (User chooses correlation)
26
** Με τη διαγραφή της συσχέτισης διαγράφονται και οι αντίστοιχες στήλες
που αντιστοιχούν στα ξένα κλειδιά του συσχετισμένου πίνακα**
5.1.3 Πλήθος και λίστα συσχετίσεων βάσης
Ο χρήστης έχει πρόσβαση σε γενικές πληροφορίες για τις συσχετίσεις της
βάσης ως εξής:
Για να δει πόσες συσχετίσεις έχει δημιουργήσει:
Ξεκινώντας από το μενού Manage your Tables πρέπει να επιλέξει διαδοχικά:
Ask Questions -> How many correlations have I created?
Για να δει τη λίστα των συσχετίσεων που έχει δημιουργήσει:
Ξεκινώντας από το μενού Manage your Tables πρέπει να επιλέξει διαδοχικά:
Ask Questions -> View all correlated tables
5.1.4 Περιορισμοί συσχετισμένων πινάκων
Αλλαγή στοιχείων:
Ο χρήστης δεν έχει τη δυνατότητα να αλλάξει πρωτεύον κλειδί το οποίο
χρησιμοποιείται ως ξένο κλειδί σε ένα συσχετισμένο πίνακα.
Ο χρήστης δεν έχει τη δυνατότητα να αλλάξει το ξένο κλειδί ενός πίνακα.
Διαγραφή στοιχείων:
Ο χρήστης δεν έχει τη δυνατότητα να διαγράψει πρωτεύον κλειδί το οποίο
χρησιμοποιείται ως ξένο κλειδί σε ένα συσχετισμένο πίνακα.
Ο χρήστης δεν έχει τη δυνατότητα να διαγράψει στήλη που αντιστοιχεί σε
ξένο κλειδί. Αν επιθυμεί να καταργήσει τη συσχέτιση αυτό μπορεί να γίνει
με τη Διαγραφή Συσχετίσεων Βάσης όπως περιγράφεται στην ενότητα (Β)
Ο χρήστης δεν έχει τη δυνατότητα να αλλάξει το ξένο κλειδί ενός πίνακα.
Εισαγωγή στοιχείων
Νέες εγγραφές δεν μπορούν να εισαχθούν σε συσχετισμένους πίνακες